package com.pubinfo.passbook.common.service.master;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pubinfo.passbook.common.entity.TSystemRole;
import com.pubinfo.passbook.common.model.dto.role.RoleEditDTO;
import com.pubinfo.passbook.common.model.vo.base.JsonResult;
import com.pubinfo.passbook.common.model.vo.manage.RolePermissionVo;

import java.util.List;

public interface TSystemRoleService extends IService<TSystemRole> {
  
  /**
   * 用户绑定角色
   *
   * @param acctId
   * @param roleId
   * @return
   */
  boolean addUserRole(Integer acctId, Integer roleId);
  
  /**
   * 根据acctId，查询当前公司医药费审核员
   *
   * @param acctId
   * @return
   */
  String findAcctByAcct(String acct);
  
  /**
   * 解除用户角色绑定关系
   *
   * @param roleId
   * @return
   */
  boolean delUserRole(Integer roleId, Integer acctId);
  
  /**
   * 角色关联菜单权限
   *
   * @param roleId
   * @param permIdList
   * @return
   */
  boolean addRoleMenu(Integer roleId, List<Integer> permIdList);
  
  /**
   * 删除角色菜单权限
   *
   * @param roleId
   * @return
   */
  boolean delRoleMenu(Integer roleId);
  
  List<TSystemRole> listCurrentUserRole(String currentAcct);
  
  String userNsrsbhByAcct(String acct);
  
  /**
   * 新增角色并绑定菜单权限
   *
   * @param role
   * @param menuIdList
   * @return
   */
  JsonResult<String> addRole(RoleEditDTO dto);
  
  /**
   * 删除角色并删除绑定关系
   *
   * @param roleId
   * @return
   */
  boolean delRole(Integer roleId);
  
  /**
   * 查询角色菜单权限
   *
   * @param roleId
   * @return
   */
  List<RolePermissionVo> getRolePermission(Integer roleId);
  
  /**
   * 当前用户切换指定角色
   *
   * @param roleId
   * @return
   */
  Boolean switchRole(String roleId, String acctId);
  
  String selectRoleByAcct(String acct);
  
  String selectRoleNameByAcct(String acct);
  
  List<RolePermissionVo> getPersonMenu(Integer acctId);
  
}
